library(lmtest)
library(sandwich)
library(date)
library(doBy)


load(file="data/sf_2.Rdata")

#####
#CONSTRUCT LAGGED DV for summonses
#####


means<-summaryBy(summons.issued ~dayno, data=s, FUN=mean, na.rm=T)##get daily hit rates
means$lag.hit.new<-NA
means<-means[order(means$dayno, decreasing=F ),]
head(means)

for(i in 2:length(means$dayno)){
	
	means$lag.hit.new[i]<-means$summons.issued.mean[i-1]
	
}


head(means)


dim(s)
s<-merge(s, means, by="dayno")
dim(s)

s<-s[order(s$dayno),]
stopifnot(identical(s$dayno, s$dayno[order(s$dayno)]))



##TABLE 1
## Estimate discontinuity at moment of intervention using all weapon stops, 2008-2015

se1<-rep(NA, 8)
names.models<-c("diff.means","diff.means+controls","linear","linear+controls","squared","squared+controls","cubic","cubic+controls")
names(se1)<-names.models

##diff in means
m1<-lm(summons.issued~period, data=s)
se1[1]<-summary(m1)$coefficients["periodpost-memo","Std. Error"]
m1a<-lm(summons.issued~period+factor(year)+factor(month)+factor(weekday)+lag.hit.new, data=s)
se1[2]<-summary(m1a)$coefficients["periodpost-memo","Std. Error"]

##local linear
m2<-lm(summons.issued~period+distance+period*distance, data=s)
se1[3]<-summary(m2)$coefficients["periodpost-memo","Std. Error"]
m2a<-lm(summons.issued~period+distance+period*distance+factor(year)+factor(month)+factor(weekday)+lag.hit.new, data=s)
se1[4]<-summary(m2a)$coefficients["periodpost-memo","Std. Error"]

##second order poly
m3<-lm(summons.issued~period+distance+period*distance+I(distance^2)+period*I(distance^2), data=s)
se1[5]<-summary(m3)$coefficients["periodpost-memo","Std. Error"]
m3a<-lm(summons.issued~period+distance+period*distance+I(distance^2)+period*I(distance^2)+factor(year)+factor(month)+factor(weekday)+lag.hit.new, data=s)
se1[6]<-summary(m3a)$coefficients["periodpost-memo","Std. Error"]


##cubic
m4<-lm(summons.issued~period+distance+period*distance+I(distance^2)+period*I(distance^2)+I(distance^3)+period*I(distance^3), data=s)
se1[7]<-summary(m4)$coefficients["periodpost-memo","Std. Error"]

m4a<-lm(summons.issued~period+distance+period*distance+I(distance^2)+period*I(distance^2)+I(distance^3)+period*I(distance^3)+factor(year)+factor(month)+factor(weekday)+lag.hit.new, data=s)
se1[8]<-summary(m4a)$coefficients["periodpost-memo","Std. Error"]


models2<-list(m1, m1a, m2, m2a, m3, m3a, m4, m4a)

print("models done")

save(se1,file= "output/se_std_summons.issued.Rdata")##save conventional SEs
save(models2,file= "output/std_models_summons.issued.Rdata")##save conventional SEs

vars<-list(NA)
vc<-list(NA)

##estimate HAC SEs

print("computing HAC SEs")

for(i in 1:length(models2)){#reset to 1 if replicating
	vci<-vcovHAC(models2[[i]])
vc[[i]]<-vci
save(vc, file="output/summons_HAC_vc.Rdata")
print(i)
}
